<?php 		
	if (defined('PARAMETRO_0') && constant('PARAMETRO_0') == 'bancoderecursos') {
		$recurso			=	null;
		if ($this->getUsuario() != null && ($this->getUsuario()->getTipoCadastro() == 'Professor' || $this->getUsuario()->getTipoCadastro() == 'Administrador')) {
			if ($_POST) {
				//SE HA POST
				if (isset($_POST['btnInserir'])) {
					redireciona(array('bancoderecursos', 'inserir'));
				}
				if (isset($_POST['btnCancelar'])) {
					adicionaMensagem(texto('MENSAGEM_MODIFICACOES_CANCELADAS'));
					redireciona(array('bancoderecursos'));
				}
				if (isset($_POST['btnExcluir'])){
					$idRecursos	=	array();
					foreach($_POST as $chave => $post) {
						if (preg_match('/^checkRecurso[0-9]+$/', $chave)) {
							array_push($idRecursos, array('id' => str_replace('checkRecurso', '', $chave), 'arquivo' => $post));
						}
					}
					if (Recurso::excluir($idRecursos))
						adicionaMensagem(texto('MENSAGEM_SUCESSO_APAGAR_ITEM'));
					redireciona(array('bancoderecursos'));
				}
				
				if(isset($_POST['btnExcluirAssociacao'])) {
					$idCurso	=	pegaPost('btnExcluirAssociacao');
					if(defined('PARAMETRO_1') && is_numeric(constant('PARAMETRO_1'))) {
						$idRecurso	=	constant('PARAMETRO_1');
						if(Recurso::excluirAssociacaoCurso($idRecurso, $idCurso))
							adicionaMensagem(texto('MENSAGEM_SUCESSO_APAGAR_ITEM'));
						redireciona(array('bancoderecursos', $idRecurso, 'editar'));
					}
					else {
						redireciona(array("404"));
					}
				}
				
				if (isset($_POST['btnSalvar'])) {
					$fileRecurso		=	isset($_FILES['fileRecurso']) ? $_FILES['fileRecurso'] : null;
					
					$strLink			=	pegaPost('strLink');
					$strTitulo			=	pegaPost('strTitulo');
					$strDescricao		=	configuraHTMLFormatado(pegaPost('strDescricao'));
					
					$strIdTipoRecurso	=	pegaPost('strIdTipoRecurso');
					
					$strOutroTipo		=	pegaPost('strOutroTipo');
					
					$strTipoRecurso	=	is_numeric($strIdTipoRecurso) ? TipoRecurso::buscarTipoPorId($strIdTipoRecurso) : $strIdTipoRecurso;
					
					
					$listaAssociacoes	=	array();
					
					foreach($_POST as $chave => $post) {
						if (preg_match('/^strAssociacao[0-9]+$/', $chave)) {
							if ($post != '--')
								array_push($listaAssociacoes, $post);
						}
					}
					$idCursos	=	$listaAssociacoes;
					
					if (Recurso::inserir($this->getUsuario()->getIdUsuario(), $this->getUsuario()->getProfessorCapacidadeBancoRecursos(), $fileRecurso, $strLink, $strTitulo, $strDescricao, $strIdTipoRecurso, $strTipoRecurso, $strOutroTipo, $idCursos)) {
						adicionaMensagem(texto('MENSAGEM_SUCESSO_INSERIR_ITEM'));
						redireciona(array('bancoderecursos'));
					}
					else {
						array_push($listaAssociacoes, '--');
						$_SESSION['constructore']['bancoDeRecursos']['inserirRecurso']						=	$_POST;
						$_SESSION['constructore']['bancoDeRecursos']['inserirRecurso']['strDescricao']		=	stripslashes($strDescricao);
						$_SESSION['constructore']['bancoDeRecursos']['inserirRecurso']['listaAssociacoes']	=	$listaAssociacoes;
						redireciona(array('bancoderecursos', 'inserir'));
					}
				}
				
				if (isset($_POST['btnSalvarEdicao'])) {
					
					if (defined('PARAMETRO_1') && is_numeric(constant('PARAMETRO_1'))){
						
						$idRecurso			=	constant('PARAMETRO_1');
											
						$fileRecurso		=	isset($_FILES['fileRecurso']) ? $_FILES['fileRecurso'] : null;
						
						$strLink			=	pegaPost('strLink');
						$strTitulo			=	pegaPost('strTitulo');
						$strDescricao		=	configuraHTMLFormatado(pegaPost('strDescricao'));
						
						$strIdTipoRecurso	=	pegaPost('strIdTipoRecurso');
						
						$strOutroTipo		=	pegaPost('strOutroTipo');
						
						$strTipoRecurso	=	is_numeric($strIdTipoRecurso) ? TipoRecurso::buscarTipoPorId($strIdTipoRecurso) : $strIdTipoRecurso;
						
						
						$listaAssociacoes	=	array();
						
						foreach($_POST as $chave => $post) {
							if (preg_match('/^strAssociacao[0-9]+$/', $chave)) {
								if ($post != '--')
									array_push($listaAssociacoes, $post);
							}
						}
						$idCursos	=	$listaAssociacoes;
						
						if (Recurso::editar($idRecurso, $this->getUsuario()->getIdUsuario(), $this->getUsuario()->getProfessorCapacidadeBancoRecursos(), $fileRecurso, $strLink, $strTitulo, $strDescricao, $strIdTipoRecurso, $strTipoRecurso, $strOutroTipo, $idCursos)) {
							adicionaMensagem(texto('MENSAGEM_SUCESSO_EDITAR_ITEM'));
							redireciona(array('bancoderecursos'));
						}
						else {
							array_push($listaAssociacoes, '--');
							$_SESSION['constructore']['bancoDeRecursos']['inserirRecurso']						=	$_POST;
							$_SESSION['constructore']['bancoDeRecursos']['inserirRecurso']['strDescricao']		=	stripslashes($strDescricao);
							$_SESSION['constructore']['bancoDeRecursos']['inserirRecurso']['listaAssociacoes']	=	$listaAssociacoes;
							redireciona(array('bancoderecursos', $idRecurso, 'editar'));
						}
					}
					else {
						redireciona(array('404'));
					}
				}
			}
			else {
				//SE NAO HA POST
				$objetivoPagina	=	(defined('PARAMETRO_1') && (constant('PARAMETRO_1') == 'inserir' /*|| constant('PARAMETRO_1') == 'associar'*/ || is_numeric(constant('PARAMETRO_1')))) ? constant('PARAMETRO_1') : 'listar';
				$tipoExibido	=	"";
				if ($objetivoPagina == 'listar') {
					$tipoExibido		=	defined('PARAMETRO_1') ? constant('PARAMETRO_1') : 'todos';
					$tipoBusca			=	$tipoExibido == 'todos' ? '' : $tipoExibido;
					$ordenacaoAtual		=	defined('PARAMETRO_2') ? str_replace('ordena', '', constant('PARAMETRO_2')) : 'titulo';
					$ordenacaoAtual 	=	$ordenacaoAtual == 'datamodificacao' ? 'dataHoraUltimaModificacao' : $ordenacaoAtual;
					$ordemAtual			=	defined('PARAMETRO_3') ? constant('PARAMETRO_3') : 'asc';
				}
				//$objetivoPagina		=	defined('PARAMETRO_2') ? constant('PARAMETRO_2') : 'ver';
				if (is_numeric($objetivoPagina)) {
					$idRecurso	=	$objetivoPagina;
					$recurso	=	new Recurso($idRecurso);
					if ($recurso->getIdRecurso() == null)
						redireciona(array('bancoderecursos'));
					if (defined('PARAMETRO_2')) {
						$objetivoPagina		=	constant('PARAMETRO_2');
					}
					else {
						redireciona(array("404"));
					}
				}
			}	
		}
		else {
			redireciona(array("404"));
		}
		//VALIDANDO OS PARAMETROS
		if(($recurso == null && ( $objetivoPagina == 'inserir' || ($objetivoPagina == 'listar' && ( $ordenacaoAtual == 'titulo' || $ordenacaoAtual == 'tipo' || $ordenacaoAtual == 'dataHoraUltimaModificacao' || $ordenacaoAtual == 'tamanho')))) || ($recurso != null && (/*$objetivoPagina == 'ver' ||*/ $objetivoPagina == 'editar'))) {
			
			//Configuracoes Gerais			
			$listaTiposRecurso			=	TipoRecurso::buscar($this->getUsuario()->getIdUsuario());
			$listaTiposRecurso			=	$listaTiposRecurso['listaResultados'];
			
//			//Criando o Submenu de Recursos
//			$ArraySubmenu	=	array();
//			foreach($listaTiposRecurso as $tipo) {
//				array_push($ArraySubmenu, array('texto' => $tipo['tipo'], 'href' => montaLink(array('bancoderecursos', canonizar($tipo['tipo']))), 'class' => $tipoExibido == canonizar($tipo['tipo']) ? 'itemMenuPrincipalSelecionado' : 'itemMenuPrincipal'));
//			}
//			
//			$arrayMenu		=	array(	array('texto' => texto('AREA_MINHA_CONSTRUCTORE'),	'href' => montaLink(array('inicial')),		'class' => 'itemMenuPrincipal'),
//										array('texto' => texto('AREA_CRIAR_CURSO'), 		'href' => montaLink(array('criarcurso')), 	'class' => 'itemMenuPrincipal'),
//										array('texto' => texto('AREA_MEUS_CURSOS'),			'href' => montaLink(array('meuscursos')),	'class' => 'itemMenuPrincipal'),
//										array('texto' => texto('AREA_MEUS_DADOS'),			'href' => montaLink(array('meusdados')),	'class' => 'itemMenuPrincipal'),
//										array('texto' => texto('AREA_MEU_BLOG'),			'href' => montaLink(array('meublog')),		'class' => 'itemMenuPrincipal'),
//										array('texto' => texto('AREA_MEUS_EMAILS'),			'href' => montaLink(array('meusemails')),	'class' => 'itemMenuPrincipal'),
//										array('texto' => texto('AREA_BANCO_DE_RECURSOS'), 	'href' => montaLink(array('bancoderecursos')), 'class' => 'itemMenuPrincipalSelecionado', 'aberto' => true, 'submenu' => $ArraySubmenu),
//										array('texto' => texto('AREA_AGENDA'),				'href' => montaLink(array('agenda')),		'class' => 'itemMenuPrincipal'),);
//
//			if ($this->getUsuario()->getTipoCadastro() == 'Administrador') {
//				$arrayMenu	=	array_merge($arrayMenu, array(array('texto' => texto('AREA_ADMINISTRACAO'), 'href' => montaLink(array('administracao')), 'class' => 'itemMenuPrincipal')));
//			}
//			
//			$this->getSmarty()->assign('arrayMenu', $arrayMenu);
			$this->getSmarty()->assign('objetivoPagina', $objetivoPagina);
			$this->getSmarty()->assign('listaTiposRecurso', $listaTiposRecurso);
			
			//DADOS REFERENTES A LISTAGEM
			if ($objetivoPagina == 'listar') {
				$listaRecursos				=	Recurso::getRecursosUsuario($this->getUsuario()->getIdUsuario(), $tipoBusca, null, null, $ordenacaoAtual, $ordemAtual);
				$utilizacaoBancoDeRecursos	=	Recurso::getUtilizacao($this->getUsuario()->getIdUsuario());
				
				if(!is_bool($utilizacaoBancoDeRecursos)) {
					$porcentagem	=	round(($utilizacaoBancoDeRecursos * 100)/$this->getUsuario()->getProfessorCapacidadeBancoRecursos(),2);
					$this->getSmarty()->assign('textoUtilizacaoBancoDeRecursos', texto('TEXTO_UTILIZACAO_BANCO_DE_RECURSOS', array(round($utilizacaoBancoDeRecursos/1024,2) , round($this->getUsuario()->getProfessorCapacidadeBancoRecursos()/1024, 2))));
					$this->getSmarty()->assign('textoPorcentagemUtilizacaoBancoDeRecursos', texto('TEXTO_PORCENTAGEM_UTILIZACAO_BANCO_DE_RECURSOS', array($porcentagem)));
					$this->getSmarty()->assign('porcentagemUtilizacao', $porcentagem);
					$this->getSmarty()->assign('porcentagemCritica', 80);
					
					$this->getSmarty()->assign('mostraUtilizacao', true);
				}
				else{
					$this->getSmarty()->assign('mostraUtilizacao', false);
				}
				
				foreach($listaRecursos['listaResultados'] as $chave => $recurso) {
					if(preg_match('/^http:\/\/.*/', $recurso['caminho'])) {
						$listaRecursos['listaResultados'][$chave]['isLink']	=	true;
						$listaRecursos['listaResultados'][$chave]['title']	=	texto('TITLE_LINK_RECURSO', array($recurso['titulo']));
						$listaRecursos['listaResultados'][$chave]['tamanhoFormatado']	=	"--";
					}
					else {
						$listaRecursos['listaResultados'][$chave]['isLink']	=	false;
						$listaRecursos['listaResultados'][$chave]['title']	=	texto('TITLE_DOWNLOAD_RECURSO', array($recurso['titulo']));
						$listaRecursos['listaResultados'][$chave]['caminho']	=	constant('__URL_RECURSO__') . $recurso['caminho'];
						$listaRecursos['listaResultados'][$chave]['tamanhoFormatado']	=	formataTamanho($recurso['tamanho']);
					}
					
					$UsuarioUltimaModificacao		=	Usuario::getUsuarioPorId($recurso['idUsuarioUltimaModificacao']);
					$listaRecursos['listaResultados'][$chave]['dataHoraUltimaModificacaoFormatada']	=	texto("TEXTO_ULTIMA_MODIFICACAO_POR", array(getDataHoraFormatada($recurso['dataHoraUltimaModificacao']), montaLink(array('usuario' , $UsuarioUltimaModificacao['listaResultados']['0']['idUsuario'])), nomeSobrenome($UsuarioUltimaModificacao['listaResultados']['0']['nome'])));
					
					$cursosAssociados	=	Recurso::buscarCursosAssociados($recurso['idRecurso']);
					
					$arrayCursos	=	array();
					
					foreach($cursosAssociados as $curso) {
						$idCurso	=	$curso['idCurso'];
						$curso	=	Curso::buscarPorId($idCurso);
						array_push($arrayCursos, array('url'	=>	montaLink(array('curso', $curso['listaResultados'][0]['urlCurso'])), 'title'	=>	texto('TITLE_ASSOCIACOES', array(strip_tags($curso['listaResultados'][0]['nome']))), 'titulo'	=>	$curso['listaResultados'][0]['nome']));
					}
					
					if (sizeof($cursosAssociados) > 0)
						$listaRecursos['listaResultados'][$chave]['arrayAssociacoes']['cursos']	=	$arrayCursos;
					else
						$listaRecursos['listaResultados'][$chave]['arrayAssociacoes']	=	array();
						
					$listaRecursos['listaResultados'][$chave]['linkEditar']	=	montaLink(array('bancoderecursos', $recurso['idRecurso'], 'editar'));
					
				}
				
				$this->getSmarty()->assign('ordenacaoAtual', $ordenacaoAtual);
				$this->getSmarty()->assign('ordemAtual', $ordemAtual);
				$this->getSmarty()->assign('listaRecursos', $listaRecursos);
				$this->getSmarty()->assign('possivelInserir', true);
				$this->getSmarty()->assign('possivelEditar', true);
				
				$this->getSmarty()->assign('LISTA_TITULO_TITULO_RECURSO_HREF', montaLink(array('bancoderecursos', $tipoExibido, 'ordenatitulo', $ordenacaoAtual != 'titulo' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'))));
				$this->getSmarty()->assign('LISTA_TITULO_TITULO_RECURSO_TITLE', $ordenacaoAtual != 'titulo' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_TITULO'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_TITULO'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_TITULO')))));
				
				$this->getSmarty()->assign('LISTA_TITULO_TIPO_RECURSO_HREF', montaLink(array('bancoderecursos', $tipoExibido, 'ordenatipo', $ordenacaoAtual != 'tipo' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'))));
				$this->getSmarty()->assign('LISTA_TITULO_TIPO_RECURSO_TITLE', $ordenacaoAtual != 'tipo' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_TIPO'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_TIPO'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_TIPO')))));
				
				$this->getSmarty()->assign('LISTA_TITULO_TAMANHO_RECURSO_HREF', montaLink(array('bancoderecursos', $tipoExibido, 'ordenatamanho', $ordenacaoAtual != 'tamanho' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'))));
				$this->getSmarty()->assign('LISTA_TITULO_TAMANHO_RECURSO_TITLE', $ordenacaoAtual != 'tamanho' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_TAMANHO'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_TAMANHO'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_TAMANHO')))));
				
				$this->getSmarty()->assign('LISTA_TITULO_DATA_MODIFICACAO_RECURSO_HREF', montaLink(array('bancoderecursos', $tipoExibido,'ordenadatamodificacao', $ordenacaoAtual != 'dataHoraUltimaModificacao' ? 'asc' : ($ordemAtual == 'desc' ? 'asc' : 'desc'))));
				$this->getSmarty()->assign('LISTA_TITULO_DATA_MODIFICACAO_RECURSO_TITLE', $ordenacaoAtual != 'dataHoraUltimaModificacao' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_DATA_ULTIMA_MODIFICACAO'))) : ($ordemAtual == 'desc' ? texto('TEXTO_ORDENA_ASC', array(texto('DADOS_DATA_ULTIMA_MODIFICACAO'))) : texto('TEXTO_ORDENA_DESC', array(texto('DADOS_DATA_ULTIMA_MODIFICACAO')))));
				
				$this->getSmarty()->assign('TITULO_BARRA_NAVEGADOR', texto('TITULO_BARRA_NAVEGADOR', array(texto('AREA_BANCO_DE_RECURSOS'))));
				$this->getSmarty()->assign('TEXTO_NAVEGACAO', texto('AREA_BANCO_DE_RECURSOS'));
			}
			
			if ($objetivoPagina == 'inserir' || $objetivoPagina == 'editar') {
				
				//Consfiguracoes Gerais
				$listaCursosUsuario			=	$this->getUsuario()->getCursos('Professor');
				$idCursos	=	array();
				foreach($listaCursosUsuario as $idCurso => $array) {
					array_push($idCursos, $idCurso);
				}
				if (sizeof($idCursos) > 0) {
					$listaCursosUsuario	=	Curso::buscarPorId($idCursos);
					$listaCursosUsuario	=	$listaCursosUsuario['listaResultados'];
				}
				else {
					$listaCursosUsuario	=	array();
				}
				
				$this->getSmarty()->assign('listaCursosUsuario', $listaCursosUsuario);
				
				//DADOS REFERENTES A INSERCAO
				if ($objetivoPagina == 'inserir') {
					$this->getSmarty()->assign('TITULO_BARRA_NAVEGADOR', texto('TITULO_BARRA_NAVEGADOR', array(texto('TEXTO_INSERIR_DADO', array(texto('DADOS_RECURSO'))) . ' - ' . texto('AREA_BANCO_DE_RECURSOS'))));
					$this->getSmarty()->assign('TEXTO_NAVEGACAO', texto('AREA_BANCO_DE_RECURSOS') . ' > ' . texto('TEXTO_INSERIR_DADO', array(texto('DADOS_RECURSO'))));
					
					if (!isset($_SESSION['constructore']['bancoDeRecursos']['inserirRecurso']['listaAssociacoes'])) {
						$_SESSION['constructore']['bancoDeRecursos']['inserirRecurso']['listaAssociacoes']	=	array('--');
					}	
				}
				
				//DADOS REFERENTES A EDICAO
				if ($objetivoPagina	==	'editar') {
					if (!isset($_SESSION['constructore']['bancoDeRecursos']['inserirRecurso'])) {
						if ($recurso->getIdRecurso() != null) {
							$modoEdicao	=	true;
							$this->getSmarty()->assign('modoEdicao', $modoEdicao);
							
							if(preg_match('/^http:\/\/.*/', $recurso->getCaminho())) {
								$_SESSION['constructore']['bancoDeRecursos']['inserirRecurso']['strLink']	=	$recurso->getCaminho();
							}
								
							$_SESSION['constructore']['bancoDeRecursos']['inserirRecurso']['strTitulo']	=	$recurso->getTitulo();
							$_SESSION['constructore']['bancoDeRecursos']['inserirRecurso']['strDescricao']	=	stripslashes($recurso->getDescricao());
							$_SESSION['constructore']['bancoDeRecursos']['inserirRecurso']['strIdTipoRecurso'] = $recurso->getIdTipoPadrao() == null ? $recurso->getTipo() : $recurso->getIdTipoPadrao();
							
							$listaAssociacoes	=	array();
							
							foreach($recurso->getListaCursosAssociados() as $curso) {
								array_push($listaAssociacoes, $curso['idCurso']);
							}
							array_push($listaAssociacoes, '--');
							
							$_SESSION['constructore']['bancoDeRecursos']['inserirRecurso']['listaAssociacoes']	=	$listaAssociacoes;
							
						}
						else {
							adicionaMensagem(texto('MENSAGEM_ERRO_EDITAR_ITEM'), 'erro');
							redireciona(array('bancoderecursos'));
						}
					}
					$this->getSmarty()->assign('TITULO_BARRA_NAVEGADOR', texto('TITULO_BARRA_NAVEGADOR', array(texto('TEXTO_EDITAR_DADO', array(texto('DADOS_RECURSO'))) . ' - ' . texto('AREA_BANCO_DE_RECURSOS'))));
					$this->getSmarty()->assign('TEXTO_NAVEGACAO', texto('AREA_BANCO_DE_RECURSOS') . ' > ' . texto('TEXTO_EDITAR_DADO', array(texto('DADOS_RECURSO'))));
				}
			}
			
			$this->exibir('bancoderecursos');
			if (isset($_SESSION['constructore']['bancoDeRecursos']['inserirRecurso'])) {
				unset($_SESSION['constructore']['bancoDeRecursos']['inserirRecurso']);
			}
		}
		else {
			redireciona(array('404'));
		}
	}
	else {
		redireciona(array("404"));
	}
?>